package com.webserver.servlet;

import com.webserver.http.HttpRequest;
import com.webserver.http.HttpResponse;

import java.io.File;

/**
 * 用于处理请求环节
 */
public class DispatcherServlet {

    public void service(HttpRequest request, HttpResponse response){
        String path = request.getRequestURI();
        //首先通过请求判定是否为请求一个业务
        if ("/myweb/regUser".equals(path)){
            RegServlet servlet = new RegServlet();
            servlet.service(request,response);
        }else if ("/myweb/loginUser".equals(path)){
            LoginServlet servlet = new LoginServlet();
            servlet.service(request,response);
        }else {
            File file = new File("./webapps"+path);
            if (file.exists()&& file.isFile()){
                //文件存在直接响应
                response.setEntity(file);
            /*
                1:根据file获取用户请求的资源的文件名
                2:通过文件名截取出后缀
                3:根据后缀设置Content-Type的值,具体参照http.txt文件最后
             */
            }else {
                //文件不存在或者定位的是一个目录则响应404.
                response.setStatusReason("Not Found");
                response.setStatusCode(404);
                file = new File("./webapps/root/404.html");
                response.setEntity(file);
            }

        }
        response.putHeaders("Server","WebServer");

    }
}
